package Negocio;

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.DefaultTableModel;

public class General {

	public General() {};
	
	public void ordenar(DefaultTableModel modeloAordenar, List atributos){
		int iMin = 0;
		int iMax = modeloAordenar.getRowCount();
		List vecTemp = new ArrayList();
		int pos;
		int col = modeloAordenar.getColumnCount();
		for(int g=iMin; g<=(iMax - 2); g++){
			for(int i=(g + 1); i<=(iMax - 1); i++){
				if (esMayor(modeloAordenar, atributos, g, i)){
					for(int f=0; f<col; f++){
						vecTemp.add(modeloAordenar.getValueAt(i, f));
					}
					for(int f=0; f<col; f++){
						modeloAordenar.setValueAt((modeloAordenar.getValueAt(g, f)), i, f);
					}
					for(int f=0; f<col; f++){
						modeloAordenar.setValueAt(vecTemp.remove(0), g, f);
					}
				}
			}
		}
	}
	private boolean esMayor(DefaultTableModel modeloAordenar, List atributos, int a, int b){
			String cadena1 = evaluar(modeloAordenar, atributos, a);
			String cadena2 = evaluar(modeloAordenar, atributos, b);
			if (cadena1.compareTo(cadena2) > 0){
				return true;}
			return false;
		}
	private String evaluar(DefaultTableModel modeloAordenar, List atributos, int c){
		String cadena = "";
		for (int f=0; f<atributos.size(); f++){
			cadena += modeloAordenar.getValueAt(c, (Integer) atributos.get(f));
		}
		return cadena;
	}
	
}
